﻿using Core.IBusiness.IPushModule;
using Core.IBusiness.IPushModule.Model;
using System;
using System.Collections.Generic;
using System.Text;

namespace Core.Business.PushModule
{
    /// <summary>
    /// 推送模块
    /// </summary>
    public class PushFactory : IPushFactory
    {

        IShopPush iShop;
        IArticlePush iArticle;
        IRelationshipPush iRelationship;
        IOperatePush iOperate;

        public PushFactory(IShopPush shop, IArticlePush article, IRelationshipPush relationship, IOperatePush operate) {
            this.iShop = shop;
            this.iArticle = article;
            this.iRelationship = relationship;
            this.iOperate = operate;
        }

        public void ApplyFriend (ApplyFriendModel applyFriend) => iRelationship.ApplyFriend(applyFriend);

        public void ApplyFriendAgree(ApplyFriendAgreeModel applyFriendAgree) => iRelationship.ApplyFriendAgree(applyFriendAgree);

        public void ApplyFriendRefuse(ApplyFriendRefuseModel applyFriendRefuse) => iRelationship.ApplyFriendRefuse(applyFriendRefuse);

        public void ApplyGroup(ApplyGroupModel applyGroup) => iRelationship.ApplyGroup(applyGroup);

        public void ApplyGroupAgree(ApplyGroupAgreeModel applyGroupAgree) => iRelationship.ApplyGroupAgree(applyGroupAgree);

        public void ApplyGroupRefuse(ApplyGroupRefuseModel applyGroupRefuse) => iRelationship.ApplyGroupRefuse(applyGroupRefuse);

        public void CommentReplyStar(CommentReplyStarModel commentReplyStar) => iArticle.CommentReplyStar(commentReplyStar);

        public void CommentStar(CommentStarModel commentStar) => iArticle.CommentStar(commentStar);

        public void CustomBroadcast(BroadcastCustomModel custom) => iOperate.CustomBroadcast(custom);

        public void GroupDissolution(GroupDissolutionModel groupDissolution) => iRelationship.GroupDissolution(groupDissolution);

        public void InfoBroadcast(BroadcastInfoModel info) => iOperate.InfoBroadcast(info);

        public void InfoComment(InfoCommentModel infoComment) => iArticle.InfoComment(infoComment);

        public void InfoReplyComment(InfoReplyCommentModel infoReplyComment) => iArticle.InfoReplyComment(infoReplyComment);

        public void InfoStar(InfoStarModel infoStar) => iArticle.InfoStar(infoStar);

        public void InfoWatch(InfoWatchModel infoWatch) => iArticle.InfoWatch(infoWatch);

        public void OrderAlreadyPay(OrderAlreadyPayModel orderAlreadyPay) => iShop.OrderAlreadyPay(orderAlreadyPay);

        public void OrderCancel(OrderCancelModel orderCancel) => iShop.OrderCancel(orderCancel);

        public void OrderPayTimeout(OrderPayTimeoutModel orderPayTimeout) => iShop.OrderPayTimeout(orderPayTimeout);

        public void OrderShipment(OrderShipmentModel orderShipment) => iShop.OrderShipment(orderShipment);

        public void ProductBroadcast(BroadcastProductModel product) => iOperate.ProductBroadcast(product);

    }
}
